Single user multiple presence in multi-user game

ABSTRACT

A method for providing a single user multiple presence implementation may include providing access for a user identified by a user account to a virtual environment hosted by a computer. The method may further include generating multiple avatars for the user account to concurrently coexist and be operative within the virtual environment. The method may further include controlling the multiple avatars at least partly in response to input from the user. The method may further include communicating virtual environment data regarding more than one of the multiple avatars to at least one client operated by the user. An apparatus for performing the method may include a processor coupled to a memory holding encoded instructions for performing operations of the method on a computer configured as a network entity.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to and is a continuation of U.S.application Ser. No. 14/946,519, filed Nov. 19, 2015, which claimspriority to and is a continuation of U.S. application Ser. No.13/291,972, filed Nov. 8, 2011 (U.S. Pat. No. 9,192,860, issued Nov. 24,2015), which claims priority to U.S. provisional application Ser. No.61/411,143, filed Nov. 8, 2010, which applications are specificallyincorporated herein, in their entirety, by reference.

BACKGROUND Field of the Inventions

This application relates to methods and systems for online multi-uservirtual reality games, including social networking sites using a virtualreality environment, multi-user sandbox games, and similar applications.

Description of Related Art

Virtual environments, such as those operated on the Utherverse™ orSecond Life, attempt to model the virtual environment after that of thereal world. Just like in the physical world, a single person isrepresented by a single representative element, such as an avatar. Whilerepresentation of a single person by a single avatar is desirable formost end-user interaction with a virtual environment, such a limitationprevents recognition of efficiencies that are only possible within avirtual environment.

SUMMARY

A virtual reality environment is disclosed, wherein a single user mayexperience multiple presences (i.e., control multiple avatars andexperience avatar feedback) within a single virtual reality environment.In an aspect, a method for providing a single user multiple presenceimplementation may include providing access for a user identified by auser account to a virtual environment hosted by a computer. The methodmay further include generating multiple avatars for the user account toconcurrently coexist and be operative within the virtual environment.The method may further include controlling the multiple avatars at leastpartly in response to input from the user. The method may furtherinclude communicating virtual environment data regarding more than oneof the multiple avatars to at least one client operated by the user.“Regarding more than one of the multiple avatars” means that the datarelates an avatar experience, such as, for example, a rendered scenefrom a viewpoint controlled as least partly by position or orientationof the avatar in the virtual environment, chat or audio data with otherusers interacting with the avatar, or other avatar/environment data, forat least two independent avatars controlled by the single user.

In an aspect, communicating virtual environment data may further includeproviding data for display on the at least one client of separate visualrepresentations of at least some portion of the virtual environment forthe multiple avatars. In a related aspect, the method may includeconfiguring the virtual environment data to cause a different one of theavatars to be displayed in different associated windows on the at leastone client. The method may further include configuring the virtualenvironment data to cause an appearance of each different one of theavatars associated with a different window to be altered for other usersof the virtual environment in response to a focus state of itsassociated window. The method may further include configuring thevirtual environment data to cause an appearance of each different one ofthe avatars associated with a different window to be altered for otherusers of the virtual environment in response to a size of its associatedwindow.

In another aspect, controlling the multiple avatars may further includeselectively controlling less than all of the avatars at any one time, inresponse to selection input from the user. In a related aspect,controlling the multiple avatars may include providing a multicastcontrol input to more than one of the avatars. In an aspect, useraccounts may be configured hierarchically; for example, the user accountmay be a master account and at least one of the avatars may correspondto a sub-account to the master account.

In another aspect, communicating virtual environment data may furtherinclude communication of data for a first one of the avatars to adifferent client device than for a second one of the avatars. In thealternative, or in addition, communicating virtual environment data mayinclude communication of data for a first one of the avatars for displayon a different display device than for a second one of the avatars,regardless of whether each of the display devices are driven by the samecomputer. For further example, communicating virtual environment datamay further include communication of data for a first one of the avatarsusing a different communication modality than for a second one of theavatars.

In another aspect. a virtual environment includes a method forpermitting a single account holder to simultaneously maintain multiplepoints of presence. The elements within the virtual world that arerepresentative of the account holder may be configured to interact withother users of the virtual environment without direct control by theaccount holder. Upon occurrence of a triggering event for any particularelement, control over the elements is transferred to the account holder,who may then interact with other users of the virtual environment.Account holders may engage in commerce within a virtual world bysimultaneously staffing at least one venue while maintaining a presenceelsewhere in the virtual world, or by simultaneously staffing andmonitoring multiple venues. Multiple venues may be staffed by clerks whoare dispatched to virtual venues upon demand, allowing virtual venues tobe staffed full time without the use of a full time worker.

More detailed aspects of the foregoing method, and related methods, aredescribed in more detail in the detailed description that follows.

In related aspects, an apparatus for implementing a single user,multiple presence functionality in an online multi-user game may beprovided for performing any of the methods and aspects of the methodssummarized above or described in more detail below. An apparatus mayinclude, for example, a processor coupled to a memory, wherein thememory holds instructions for execution by the processor to cause theapparatus to perform operations as described above. Certain aspects ofsuch apparatus (e.g., hardware aspects) may be exemplified by equipmentsuch as a network interface for remote communications and a dedicatedgraphics processor for processing image data from a remote client usingan algorithm as described herein. Similarly, an article of manufacturemay be provided, including a non-transitory computer-readable storagemedium holding encoded instructions, which when executed by a processor,may cause a computer configured as an identity verification apparatus toperform the methods and aspects of the methods as summarized above.

BRIEF DESCRIPTION OF THE DRAWINGS

The present technology, in accordance with one or more variousembodiments, is described in detail with reference to the followingfigures. The drawings are provided for purposes of illustration only andmerely depict typical or example embodiments of the technology. Thesedrawings are provided to facilitate the reader's understanding of thetechnology and shall not be considered limiting of the breadth, scope,or applicability of the technology.

FIG. 1 is a block diagram showing an example of a system for performingone or more methods as described herein related to single user, multiplepresence in a virtual reality environment.

FIG. 2 is a block diagram showing an example of a system for performingone or more methods as described herein related to single user, multiplepresence in a virtual reality environment.

FIGS. 3-6 are flow charts showing an example of a method for providing asingle user multiple presence functionality in a virtual environment,and certain additional operations or aspects of the method.

FIG. 7 is a block diagram illustrating aspects of an apparatus forperforming a methodology according to FIGS. 3-6.

FIGS. 8-10 are flow charts showing an example of a method for monitoringto detect a triggering event in a virtual environment such as may beuseful in connection with a single user multiple presenceimplementation, and certain additional operations or aspects of themethod.

FIG. 11 is a block diagram illustrating aspects of an apparatus forperforming a methodology according to FIGS. 8-10.

FIG. 12 is a flow chart illustrating aspects of a method for automaticcontrol of an avatar in a single user multiple presence implementation.

FIG. 13 is a flow chart illustrating aspects of a method fortransferring control of an avatar in a single user multiple presenceimplementation.

DETAILED DESCRIPTION

The present disclosure directed to a virtual environment where a singleuser account is represented by more than one avatar or other indicia ofvirtual environment presence.

It should be understood in this discussion that certain terms are usedfor convenience, but that the scope of the technologies is not to belimited by the common definition of such terms. The following terms areused herein: “Avatar” typically refers to a person-like representationof a user within a virtual world. As used herein, the term additionallyincludes any element of a virtual world that represents a user.“Operator” or “user” means a person, a related group of people, one ormore computer processes, or a combination of one or more persons and oneor more computer processes, which (solely or in concert) control a useraccount. A “user account” means an account for access to a virtualworld, including an account that corresponds to one or more virtualrepresentatives of that account. A user account may also include anaccount associated with the operation of a business or other entitywithin a virtual world. It should also be understood that the display ofeach avatar may (and normally does) include an avatar located in adifferent part of the virtual world than other avatars, oftensufficiently virtually distant that the commonly-controlled avatarscannot see or hear each other. The term “single user, multiple presence”does not limit an implementation to a single user; instead, it meansthat any given user of an multi-user game may control multiple presencesor instances of one or more avatars in the modeled environment.

FIG. 1 is a block diagram showing an example of single user, multiplepresence virtual reality universe system 100 such as may be used toperform methods described herein. System 100 may comprise, for example,a computer 101 including at least a processor or CPU 102 and a memory104 for holding data and program instructions. When executed by the CPU102, the program instructions may cause the computer 101 to perform oneor more method and operations as disclosed herein. The computer 101 mayfurther comprise or be connected to a display device 106 for providing agraphical or text display of software output, and a user input device110, for example a keyboard, mouse, keyboard, microphone, touchscreen,touchpad, or some combination of these or similar input devices. Thecomputer 101 may be in communication with a Wide Area Network (WAN) 112,for example, the Internet, via a network interface component 108.

The computer 101 may receive data including user input from a clientcomponent 116, which may be in communication with the computer 101 viathe WAN 112. A client component may include hardware elements similar tocomputer 101, but in a form factor for client use. The computer 101 mayprovide output to the client 116 in response to user input. Generally,the computer 101 may host multiple clients, for example the secondclient 114, which may be configured similarly to the first client. Theoutput may include a virtual world interface for accessing a virtualmodel of a place, including operating an avatar within the model,editing the model or objects contain in the model, or otherwiseinteracting with the virtual model. The model may be a three-dimensional(3-D) model, or a quasi-3-D model resembling a 3-D model in somerespects, but limited by retaining essential characteristics of atwo-dimensional model, sometime referred to as a 2-D world. In aseparate aspect, the output may include video data for display on one ormore surfaces, using a flat panel device, projector or other displaytechnology, at each of the client 116 and second client 114.

The present technologies provide a means for a single user to be presentin multiple locations simultaneously within a virtual world. A singleentity may also use a plurality of X operators to control a largernumber, X+N, or X*(1+N), of avatars within a virtual environment. Meansis provided for an avatar that is not actively managed by an operator toappear, to third parties, as if it is being actively managed. Avatarspresent in unoccupied areas of the virtual environment are not actuateduntil the occurrence of a triggering event. The passive status of suchavatars may be communicated to the operator of the virtual world,thereby avoiding expenditure of resources to maintain areas that areoccupied only by uncontrolled avatars.

The system 200 shown in FIG. 9 may include the above means as one ormore algorithms for performing operations of the methods describedherein, stored in a memory of a virtual world server 202, which may beaccessed via a wide area network or other communications network orcombination of networks by multiple clients 204 (one of many shown). Aclient 204 may comprise a single device or multiple devices linked via auser account; for example, a personal computer, laptop computer,notebook computer, notepad computer, smart phone, gaming device, or anycombination of two or more of the foregoing devices controlled by asingle user and connecting to the server 202 using a single useraccount. The client 204 may receive user input from one or more userinput devices, for example, a keyboard, mouse or other pointing device,touchscreen, microphone, camera array (e.g., Microsoft™ Kinect™ orsimilar device), or other input device.

For the purposes of illustration, one application of these technologieswould be for a person to sign into a virtual world. Once signed in, theuser may activate a window 208 monitoring an avatar 214 that representsthe user, which window may be displayed on a display device connected tothe client and generated using an interface application operating on theclient provided with virtual world data from the WV server 202. The usermay then activate a second window 210 monitoring a second avatar 212that also represents the user. The second avatar, for example, may staffa virtual shop 218, while the first avatar moves about the virtualworld, optionally interacting with avatars controlled by other userssuch as avatar 216 and various objects modeled in the virtual world.When customers visit the shop 218, the user's attention may be directedto the second avatar 216, optionally by providing a signal from theserver 202 such as an audible alert signal or visible signal, such as aflashing icon for output at the client 204. When other users 216 seek tointeract with the first avatar 214, the user's attention may similarlybe directed to the first avatar, optionally using an alert signal fromthe server 202 to the client 204. The avatar the user is activelyinteracting with may be displayed in a different manner than the avatarnot being actively interacted with, as by having the inactive avatargrayed out.

In an aspect, the client 204 and/or virtual world server 202 mayallocate avatar control input from the input devices 205 to a selectedone of the multiple presence avatars 214, 212. For example, all inputmay be directed to an avatar selected by the user using a selectioncommand, until the user selects a different avatar. In the alternative,or in addition, input from different input devices may be allocated todifferent avatars; for example, keyboard input may be allocated forcontrol of a first avatar and joystick/game controller input to a secondavatar. In a further alternative, or in addition, input may bedesignated for a particular avatar based on the input value; forexample, based on a keystroke sequence such as “ALT” or “CTRL” with oneor more other keys, based on keys in a region of a keyboard, based ontone of voice, or other factors.

In another embodiment involving online commerce, a staff of ‘N’ numberof employees may all logged into a user account. To better monitorproductivity or secure the account, the primary user account may havesub-accounts for each human operator. A number of avatars, ‘N+X’ (where‘X’ may be zero or greater), may be deployed throughout the virtualworld in places where other people may wish to interact with avatarsrepresenting the user account. In an embodiment, a computer process mayanimate the avatars using an automatic control algorithm configured tocause the avatars to appear to be actively controlled by a person, andtransfers control to a person upon the occurrence of a triggering event.For example, a large retailer may desire to deploy 1,000 storefrontsthroughout a virtual world. They may hire 50 employees to staff the1,000 storefronts. While the avatars in all of the storefronts mayengage in certain rudimentary behavior under computer control, when acustomer directs a question to an avatar, control of that avatar ispassed to the human operator. The human operator interacts with thecustomer, passing control back to a computer process when appropriate.Another example may be a political campaign that deploys campaign workeravatars throughout a virtual world. Each worker avatar may sport a shirtbearing a campaign logo. In such a case, each human volunteer maycontrol several avatars, actively engaging with each only when it meetstheir needs, such as when another avatar asks for further informationfrom a specific avatar controlled by a worker.

In this way, a single human may be simultaneously present in a pluralityof places within a virtual world. The nature of remotely controlledavatars is such that people within a virtual world are never sure thatthe human behind the avatar is paying attention to the game, users ofvirtual worlds have become accustomed to delays in responding tointeraction, or even to being ignored. To other users, a delay caused bya human trying to control multiple avatars at once, or in computercontrol over multiple avatars being transferred back and forth to humanoperators, would be effectively indistinguishable from delays caused bydistractions normally associated with one-to-one operations of avatarsby humans. Use of computer assisted interactions, such as an automatic“just a sec” reply, or automated foot shuffling, may further reduce theperceived delays.

The control of multiple avatars by a single operator or user need not belimited to a single control interface. For example, an operator may haveten windows, each of which displays a different avatar in a differentpart of the world, only one of said windows being visible. The remainingnine windows may be minimized along the bottom of the computer screen.Open the occurrence of a set event, the other window or windows mayflash to indicate that they need attention. Alternatively, multiplewindows may be displayed in a “picture in picture” or “picture besidepicture” setting. The display of multiple windows on multiple monitorsis also contemplated. The display of multiple data output places may besuch that data about one avatar is displayed on a computer window,another on a cellular phone, another via textual description of theenvironment on an SMS device, and another via a trigger-actuated pop-upwindow. In one implementation, the server may cause two windows toappear, a display window and a summary window. The display windowdisplays the current avatar being actively interacted with. The summarywindow may display a plurality of windows into the environments forother avatars, which windows may be scaled to fit in a tiled arrangementfilling the summary window. By clicking or otherwise selecting any ofthe scaled windows, the virtual world interface may cause the selectedwindow to be displayed in the display window and to contain theoperational avatar.

In one implementation, an indication may be displayed in output from theserver 202 for rendering the virtual world, in response to the avatarbeing controlled by a non-human operator. For example, the appearance orshading of the avatar may be altered, or an icon indicating that theavatar is under automatic control may be shown near the avatar. In thealternative, or in addition, a separate indication may be displayed inthe output for rendering the virtual world, in response to the avatarbeing controlled by a human operator.

In another aspect, the server 2020 may enable third party avatars to betransported to the location of another avatar associated with the useraccount. Thus, for example, if a ‘player 1’ is simultaneously present ina classroom through ‘avatar 1a’ and in the streets through ‘avatar 1b,’player 1's ‘avatar 1b’ might approach a ‘player 2,’ ask the avatar tojoin ‘player 1’ in class, and upon consent from ‘player 2,’ ‘player 2's‘avatar might be transported to the location of ‘avatar 1a.’Alternatively, player 2's avatar might be duplicated (or a new avatarcreated) and placed in the same place as ‘avatar 1a.’

The N:N+X ratio of operators to controlled avatars allows avatars frommultiple user accounts to be controlled by a single operator. Forexample, entities ‘Company A’ and ‘Company B’ may each require 10 storesto be staffed in a virtual world environment. A third entity ‘Company C’may provide multiple human operators, for example, 5 operators, to beshared concurrently between ‘Company A’ and ‘Company B.’ The virtualworld server may model multiple avatars, for example 20 avatars, oneshopkeeper avatar in each of ‘Company A’ and ‘Company B's stores modeledin the virtual world. When an avatar for a potential customer enters anyvirtual store, the virtual world server may transfer control of theshopkeeper avatar, for example from an automatic control process, to aselected one of Company C's operators. The server 202 or a downstreamclient node controlled by Company C may select an available one of theoperators using a random, quasi-random, sequential, or predeterminedassignment algorithm. The virtual world server may further transmit analert indication to alert the selected operator about the transfer ofcontrol. The selected operator may then control the shopkeeper avatar,interacts with the customer, and when activity in the shop has ceased,the operator may then cede control back to automatic control algorithmand be available to control a different shopkeeper algorithm.

It should be understood that when an avatar does not appear in the filedof view of any user of the virtual world and is therefore not visible toanybody, and the avatar is being controlled automatically, the avatarneed not be displayed, nor computer resources wasted on maintenance ofthe avatar. This may frequently be the case when a shopkeeper avatar isplaced in a virtual shop that experiences periods of time withoutavatars from users present in the shop. Under these conditions, theautomatically controlled avatar may be in a suspended state, or evencreated on the fly as needed in response to some event in the virtualworld, for example, when an avatar for a prospective customer enters astore.

It should also be noted that when an automatic control algorithmcontrolling an avatar is discussed herein, such automatic control shouldbe integrated in hybrid automatic/human process for control of anavatar. Each avatar may cycle between periods of automatic control andperiods of human control. For example, a plurality of windows may bedisplayed to each human operator. Each window may correspond to anavatar or similar interactive point of presence within a virtual world.The computer process may provide certain indicia of activity to theavatar, for example walking along a set or calculated path, givinggreetings, nodding, following customers with their eyes, or otherwise.When the human operator monitoring the windows at a client node desires,and provides input indicating the desire and/or upon the occurrence of atrigger event, the virtual world server and connecter client may cause amonitoring window to become active. For example, the client interfacemay cause the monitoring window to be transferred to, or duplicated on,a larger window configured for active control of the avatar. Theoperator is then able to take over the active control of the avatar.

A substantial improvement over the art is the ability for a singleoperator to be present in multiple places at once within a virtualworld. Just as coffee “Baristas” have enjoyed enhanced productivity bymaking multiple customers' drinks simultaneously, so too can virtualworld inhabitants substantially enhance their productivity and enjoymentby simultaneously enjoying a presence in multiple places within the samevirtual world.

In view of exemplary systems shown and described herein, methodologiesthat may be implemented in accordance with the disclosed subject matter,will be better appreciated with reference to various flow charts. Forpurposes of simplicity of explanation, methodologies are shown anddescribed as a series of acts in blocks, but the claimed subject matteris not limited by the number or order of blocks, as some blocks mayoccur in different orders and/or at substantially the same time withother blocks from what is depicted and described herein. Moreover, notall illustrated blocks may be required to implement methodologiesdescribed herein. It is to be appreciated that functionality associatedwith blocks may be implemented by software, hardware, a combinationthereof or any other suitable means (e.g., device, system, process, orcomponent). Additionally, it should be further appreciated thatmethodologies disclosed throughout this specification are capable ofbeing stored as encoded instructions and/or data on non-transitorycomputer-readable medium to facilitate transporting and transferringsuch methodologies to various devices.

As used in this application, the terms “component”, “module”, “system”,and the like are intended to refer to a computer-related entity, eitherhardware, a combination of hardware and software, software, or softwarein execution. For example, a component may be, but is not limited tobeing, a process running on a processor, a processor, an object, anexecutable, a thread of execution, a program, and/or a computer. By wayof illustration, both an application running on a server and the servercan be a component. One or more components may reside within a processand/or thread of execution and a component may be localized on onecomputer and/or distributed between two or more computers.

A server for a virtual world environment may perform a method 300 forproviding a single user multiple presence experience for one or moreusers, as shown in FIG. 3. The method 300 may include, at 302, providingaccess for a user identified by a user account to a virtual environmenthosted by a computer. For example, a server computer may provide accessfor a remote client operated by a user, via a secure session in whichthe server hosts a multi-user virtual world environment. The method mayfurther include, at 304, generating multiple avatars for the useraccount to concurrently coexist and be operative within the virtualenvironment. This may include combined human and automatic control ofone or more avatars, and allocating control inputs from a single clientto multiple avatars while concurrently modeling avatar action in thevirtual world. The method 300 may further include, at 306, controllingthe multiple avatars at least partly in response to input from the user.Two or more avatars may be controlled concurrently by the server inresponse to user input, or control by be toggled between automatic andhuman control such that the number of human-controlled avatars islimited to a set number, for example, one or more, with remaining onesof the two or more avatars under automatic control. The method 300 mayfurther include the server, at 308, communicating virtual environmentdata regarding more than one of the multiple avatars to at least oneclient operated by the user. The client device may process the virtualworld data from the server and provide an audio-video output using oneor more windows of a graphical user interface displayed in a displaydevice.

FIGS. 4-6 show further optional operations or aspects 400, 500 or 600that may be performed by the server in conjunction with the method 300,or in some cases independently of said method. The operations shown inFIGS. 4-6 are not required to perform the method 300. The operations areindependently performed and not mutually exclusive. Therefore any one ofsuch operations may be performed regardless of whether anotherdownstream or independent upstream operation is performed. If the method300 includes at least one operation of FIGS. 4-6, then the method 300may terminate after the at least one operation, without necessarilyhaving to include any subsequent downstream operation(s) that may beillustrated.

As shown in FIG. 4, the method 300 may include one or more of theadditional operations 400. In an aspect of the method, communicatingvirtual environment data 308 may further include, at 402, providing datafor display on the at least one client of separate visualrepresentations of at least some portion of the virtual environment forthe multiple avatars. For example, data for display of separateviewpoints in separate windows may be provided to the client. In suchcases, the method 300 may further include, at 404, configuring thevirtual environment data to cause a different one of the avatars to bedisplayed in different associated windows on the at least one client. Inaddition, the method 300 may further include, at 406, configuring thevirtual environment data to cause an appearance of each different one ofthe avatars associated with a different window to be altered for otherusers of the virtual environment in response to a focus state of itsassociated window. The focus state may change with time in response touser selection or input. For example, an active focus enabling activehuman control of the avatar may be represented by a first appearance ofthe avatar or icon placed near the avatar, while an inactive windowfocus in which human control is not enabled may be represented by asecond appearance of the avatar or a different icon. The other users mayview these different appearances or icons on corresponding differentclients, and thereby be informed as to whether a particular avatar isunder human control by another user at any particular time. In thealternative, or in addition, the method 300 may similarly include, at408, configuring the virtual environment data to cause an appearance ofeach different one of the avatars associated with a different window tobe altered for other users of the virtual environment in response to asize of its associated window.

As shown in FIG. 5, the method 300 may include one or more of theadditional operations 500. In an aspect, the method 300 may include, at502, controlling the multiple avatars by selectively controlling lessthan all of the avatars at any one time by human control, in response toselection input from the user. Remaining ones of the avatars may becontrolled using an automatic control algorithm when not under humancontrol. In an alternative, or in addition, the method 300 may furtherinclude, at 504, the controlling the multiple avatars by providing amulticast control input to more than one of the avatars. In this aspect,a control signal from the client or from an automatic control algorithmmay be used to control two or more avatars in a parallel fashion, and inthis sense the control signal may be “multicast” to control multipleavatars. Of course, avatars by nature are modeled objects within amodeled environment, and thus, are not capable of autonomously receivingcommand signals. Nonetheless, multiple avatars may appear to act asthough receiving the same command signals when caused via an virtualworld modeling engine to respond to the same input. Such “multicasting”may be of the greatest utility when used with automatic control signals,but is not limited to such signals.

As shown in FIG. 6, the method 300 may include one or more of theadditional operations 600. In an aspect of the method, the user accountmay be configured as a master account, and at least one of the avatarsmay be assigned to a sub-account of the master account, to enablereceiving input from multiple different operators operating differentclients, but under the same user account. For example, in suchembodiments the method 300 may include, at 602, communicating virtualenvironment data further comprises communication of data for a first oneof the avatars to a different client device than for a second one of theavatars. In addition, the method 300 may further include communicatingvirtual environment data for a first one of the avatars for display on adifferent display device than for a second one of the avatars,regardless of whether each of the display devices are driven by the samecomputer. For example, two or more client devices may be associated withthe same user account, optionally with sub-accounts used to trackactivities at the separate clients under an aggregate master account.The different client may be operated by different operators, or by thesame operator. In another aspect, the method 300 may include, at 606,communicating virtual environment data for a first one of the avatarsusing a different communication modality than for a second one of theavatars under control of the same client. For example, the server maytransmit text chat data to the client for a first one of the avatars,and voice chat data for a second one of the avatars. For furtherexample, the server may transmit packet data over a wide area network toa router and on to the client for a first one of the avatars, whilesending packet data through a wireless communications network and basestation to a wireless receiver in a smart phone for a second one of theavatars. Using different modes may assist the end user in distinguishingbetween data received for the different avatars and avoid end userconfusion between avatars. In the foregoing example, data received “foran avatar” should be understood as virtual world data, including chatdata, that is provided to the like in response to avatar operations andinteractions in the virtual world environment, including interactionswith other avatars.

With reference to FIG. 7, there is provided an exemplary apparatus 700that may be configured virtual world server operating a virtual worldhosting application, or as a processor or similar device for use withinthe virtual world server, for controlling traffic so as to provide singeuser multiple presence functionality within a multi user virtual worldenvironment. The apparatus 700 may include functional blocks that canrepresent functions implemented by a processor, software, or combinationthereof (e.g., firmware).

In one embodiment, the apparatus 700 may include an electrical componentor module 712 for providing access for a user identified by a useraccount to a virtual environment hosted by a computer. For example, theelectrical component 712 may include at least one control processorcoupled to network interface or the like and one or more memorycomponents with instructions for setting up an secure session to avirtual world engine using a user account database. The electricalcomponent 712 may be, or may include, a means for providing access for auser identified by a user account to a virtual environment hosted by acomputer. Said means may be or may include the at least one controlprocessor operating an algorithm. The algorithm may operate in anapplication to perform detailed operations for providing access to auser, for example as described in connection with FIG. 1 above or asknown in the art. Said means may include other aspects, such as thehardware and software components illustrated in FIGS. 1-2 and 7 forproviding access to a virtual world session.

The apparatus 700 may include an electrical component 714 for generatingmultiple avatars for the user account to concurrently coexist and beoperative within the virtual environment. For example, the electricalcomponent 714 may include at least one control processor coupled to amemory holding instructions for hosting a virtual world environment, inwhich two or more avatars are assigned to a single user account andallocated control input according to more detailed algorithms describedherein, and modeled according to allocated control input. The electricalcomponent 714 may be, or may include, a means for generating multipleavatars for the user account to concurrently coexist and be operativewithin the virtual environment. Said means may be or may include the atleast one control processor operating an algorithm. The algorithm mayoperate in a processor of host server to generate multiple avatars, forexample by modeling 3-D or 2-D objects and articulating animated bodies,optionally modeled using a physics engine, in which certain avataractions and interactions are reserved for control using input from aclient logged into the virtual world session via a specified useraccount, including an algorithm for generating and tracking multipleavatars under control of an input stream associated with a single useraccount. Said means may include other aspects for generating multipleavatars, such as the hardware and software components illustrated inFIGS. 1-2 and 7 for generating multiple avatars concurrently controlledby a single user.

The apparatus 700 may include an electrical component 716 forcontrolling the multiple avatars at least partly in response to inputfrom the user. For example, the electrical component 716 may include atleast one control processor coupled to a memory holding instructions forcontrolling the multiple avatars at least partly in response to inputfrom the user according to more detailed algorithms described herein,and modeling the avatars according to allocated control input. Theelectrical component 716 may be, or may include, a means for controllingthe multiple avatars at least partly in response to input from the user.Said means may be or may include the at least one control processoroperating an algorithm. The algorithm may operate in a processor of hostserver to control multiple avatars in response to an input stream for asingle user account, for example by receiving packet data at a networkinterface in a session initiated under a user account, decoding andproviding the decoded data as control input to a virtual world modelingprocess, allocating user control input in the data from a single user tomultiple avatars, and modeling avatar actions in the environment inresponse to the allocated control input. Said means may include otheraspects for generating multiple avatars, such as the hardware andsoftware components illustrated in FIGS. 1-2 and 7 for controlling themultiple avatars at least partly in response to input from the user.

The apparatus 700 may include an electrical component 718 forcommunicating virtual environment data regarding more than one of themultiple avatars to at least one client operated by the user. Forexample, the electrical component 718 may include at least one controlprocessor coupled to a memory holding instructions for providing virtualenvironment data to a client or clients according to more detailedalgorithms described herein. The electrical component 718 may be, or mayinclude, a means for communicating virtual environment data regardingmore than one of the multiple avatars to at least one client operated bythe user. Said means may be or may include the at least one controlprocessor operating an algorithm. The algorithm may operate in aprocessor of host server to communicate virtual environment dataregarding more than one of the multiple avatars to at least one clientoperated by the user, for example by encoding virtual world data usingan application interface to prepare a client data stream, packetizingthe client data stream and transmitting the packetized stream to anetwork address for one or more clients designated for a user account.Said means may include other aspects for generating multiple avatars,such as the hardware and software components illustrated in FIGS. 1-2and 7 for communicating virtual environment data.

The apparatus 700 may include similar electrical components forperforming any or all of the additional operations 400, 500 or 600described in connection with FIGS. 4-6, which for illustrativesimplicity are not shown in FIG. 7.

In related aspects, the apparatus 700 may optionally include a processorcomponent 702 having at least one processor, in the case of theapparatus 700 configured as a virtual world hosting component andoptionally incorporated into a network server. The processor 702 may bein operative communication with the components 712-718 or similarcomponents via a bus 710 or similar communication coupling. Theprocessor 702 may effect initiation and scheduling of the processes orfunctions performed by electrical components 712-718. The processor 702may encompass the components 712-718, in whole or in part. In thealternative, the processor 702 may be separate from the components712-718, which may include one or more separate processors.

In further related aspects, the apparatus 700 may include a networkinterface component 708, for communicating with multiple clients over anetwork. The apparatus 700 may include an input/output port 708 forreceiving input for administrative control of the virtual world hostprocess and providing a monitoring output for administrative purposes.The apparatus 700 may include a component for storing information, suchas, for example, a memory device/component 704. The computer readablemedium or the memory component 704 may be operatively coupled to theother components of the apparatus 700 via the bus 710 or the like. Thememory component 704 may be adapted to store computer readableinstructions and data for performing the activity of the components712-718, and subcomponents thereof, or the processor 702, or theadditional aspects 400, 500 or 600, or the methods disclosed herein. Thememory component 704 may retain instructions for executing functionsassociated with the components 712-718. While shown as being external tothe memory 704, it is to be understood that the components 712-718 canexist within the memory 704.

In another aspect, a server for a virtual world environment may performa method 800 for providing a single user multiple presence experiencefor one or more users, as shown in FIG. 8. The method 800 may include,at 802, providing access for a person identified by a user account to avirtual environment hosted by a computer via at least one client. Thismay be done in a manner similarly to corresponding operation 302 ofmethod 300. It should be appreciated that the virtual environment mayinclude a 3-D or 2-D modeled virtual world in which aspects of method300 are also practiced, for example the allocation of control data for asingle user account to two or more avatars in the environment. Asdescribed in examples above, a single user may thus control multipleshopkeeper avatars or the like to increase opportunities for personalinteractions with other users via respective avatars. Accordingly, themethod 800 may include, at 804, monitoring the virtual environment todetect a triggering event defined for that user account for at least onelocation in the virtual environment. For example, if multiple shopkeeperavatars are being controlled under a single master account, the servermay monitor respective virtual shops in which the shopkeeper avatars arelocated. A triggering event may include, to continue the example,another avatar entering a shop in which the avatar is located, orotherwise indicating interest in some product or service being offered.The present technology, however, is not limited to virtual shop keepingapplications.

In an optional aspect, the method 800 may include, at 806, providing anindicator within the virtual environment indicating that monitoring isbeing performed to detect the triggering event in the at least onelocation. For example, a modeled environment in the shop may be providedwith an object that responds when the triggering event is detected. Thisobject may be visible to a client operating an avatar in the modeledenvironment. For example, summary windows displaying monitoredenvironments are described herein above. Such summary windows are anexample of an indication that monitoring is being performed. Instead ofwindows, icons and/or text messages may be provided to a client. Suchindications may generally enable a user responsible for controllingmultiple avatars on an as-needed basis to track the status of differentmonitored environments at a glance. The indications may be provided onlyto clients designated for the avatar being monitored, or may also beprovided to clients entering a monitored space. The method 800 mayfurther include, at 808, generating a signal for transmission to aclient operated by the person, indicating that the triggering event hasbeen detected. For example, when a customer avatar is modeled asentering the virtual store under the control of another user, a virtualbell in the store may ring or a light may flash. The server may transmitan instruction to the clients having an avatar present in the virtualstore to output a bell tone, or display a message on the client, oralter the appearance of the modeled virtual store interior with aflashing light, etc. In an aspect, the indicator may be provided only tothe client operating one of the avatars, for example a shopkeeper avatarin a virtual store, and not to clients operating other avatars enteringthe modeled store.

FIGS. 9-10 show further optional operations or aspects 900 or 1000 thatmay be performed by the server in conjunction with the method 800, or insome cases independently of said method. The operations shown in FIGS.9-10 are not required to perform the method 800. The operations areindependently performed and not mutually exclusive. Therefore any one ofsuch operations may be performed regardless of whether anotherdownstream or independent upstream operation is performed. If the method300 includes at least one operation of FIGS. 9-10, then the method 800may terminate after the at least one operation, without necessarilyhaving to include any subsequent downstream operation(s) that may beillustrated.

FIG. 9 shows additional operations 900 that may be performed inconjunction with the method 800. The method 800 may further include, at902, causing a rendered appearance of the indicator in the virtualenvironment to be altered in response to detection of the triggeringevent. For example, as mentioned above a light may be caused to flash,etc. The method 800 may further include, at 904, causing a renderedappearance of the indicator in the virtual environment to be altered asecond time in response at least one of: (a) expiration of a timerinitiated in response to detection of the triggering event; or (b)detection of a second event defined as terminating the triggering event.For example, an avatar controlled by another user may leave themonitored area to terminate the triggering event. In an aspect, themethod 800 may include, at 906 defining the triggering event in relationto an avatar located in the virtual environment. For example, thevirtual world server may operate an algorithm that determines when anavatar operated by another user has moved within a defined proximity toa monitored avatar. In an alternative, the method 800 may include, at908, defining the triggering event by presence of an avatar operated byanother user within a defined proximity of the indicator, where theindicator is a modeled object in the virtual world environment. Forexample, the method 800 may include, at 910, providing the indicatorconfigured as a mobile element within the virtual environment, includingas an avatar or other modeled movable object.

FIG. 10 shows additional operations 1000 that may be performed inconjunction with the method 800. The method 800 may further include, at1002, actuating at least one avatar for control by the person inresponse to detecting the triggering event, wherein actuating comprisesswitching from fully automatic control of the avatar to semi-automaticcontrol responsive to input from the person. For example, after theclient device has been provided with an alter signal and the serverdetects that a user at the client has selected the avatar for control,the server may discontinue an automatic control stream for the avatar,or some portion thereof, and include control input from the client formodeling avatar actions in the virtual environment. The method mayfurther include, at 1004, confirming whether a user that causes atriggering event to occur desires to interact with the at least oneavatar, as a condition precedent to actuating the at least one avatar.For example, prior to providing an alert to a prospective controllingclient, the server may execute an automatic sequence testing whether ornot the user causing a triggering event desires to interact. For furtherexample, for a shop keeper avatar, the server may cause the shop keeperavatar to approach the triggering avatar ask, “may I help you please?”and wait for a response. The server may consider the user desire tointeract confirmed only if receiving a response to the automatic action.

With reference to FIG. 11, there is provided an exemplary apparatus 1100that may be configured virtual world server operating a virtual worldhosting application, or as a processor or similar device for use withinthe virtual world server, for controlling traffic so as to provide singeuser multiple presence functionality within a multi user virtual worldenvironment. The apparatus 1100 may include functional blocks that canrepresent functions implemented by a processor, software, or combinationthereof (e.g., firmware).

In one embodiment, the apparatus 1100 may include an electricalcomponent or module 1112 for providing access for a person identified bya user account to a virtual environment hosted by a computer via atleast one client. For example, the electrical component 1112 may includeat least one control processor coupled to network interface or the likeand one or more memory components with instructions for setting up ansecure session to a virtual world engine using a user account database.The electrical component 1112 may be, or may include, a means forproviding access for a user identified by a user account to a virtualenvironment hosted by a computer. Said means may be or may include theat least one control processor operating an algorithm. The algorithm mayoperate in an application to perform detailed operations for providingaccess to a user, for example as described in connection with FIG. 1above or as known in the art. Said means may include other aspects, suchas the hardware and software components illustrated in FIGS. 1-2 and 11for providing access to a virtual world session.

The apparatus 1100 may include an electrical component 1114 formonitoring the virtual environment to detect a triggering event definedfor that user account for at least one location in the virtualenvironment. For example, the electrical component 1114 may include atleast one control processor coupled to a memory holding instructions forhosting a virtual world environment, modeling and tracking actions ofavatars in the virtual world environment, and detecting when an actionor state of an avatar needs a condition defined as a triggering event.The electrical component 1114 may be, or may include, a means formonitoring the virtual environment to detect a triggering event definedfor that user account for at least one location in the virtualenvironment. Said means may be or may include the at least one controlprocessor operating an algorithm. The algorithm may operate in aprocessor of host server to track actions or states of avatars in thevirtual world environment and detect when an avatar action or statemeets a predetermined condition for a defined triggering event. Saidmeans may include other aspects for monitoring a virtual environment,such as the hardware and software components illustrated in FIGS. 1-2and 11 for generating multiple avatars concurrently controlled by asingle user and monitoring a virtual world environment for such avatarsand other avatars.

The apparatus 1100 may include an electrical component 1116 forproviding an indicator within the virtual environment indicating thatmonitoring is being performed to detect the triggering event in the atleast one location. For example, the electrical component 1116 mayinclude at least one control processor coupled to a memory holdinginstructions for providing the indicator as a modeled object, icon, textor overlaid object for a monitored space. The electrical component 1116may be, or may include, a means for providing a monitoring indicator.Said means may be or may include the at least one control processoroperating an algorithm. The algorithm may operate in a processor of hostserver to determine if and when a view to be rendered to a clientincludes a monitored space, determining a current status of eachmonitored space and providing current status data to a selected clientfor whom the space is being monitored. Said means may include otheraspects for monitoring spaces, such as the hardware and softwarecomponents illustrated in FIGS. 1-2 and 11 for monitoring spaces andproviding an indication to a client.

The apparatus 1100 may include an electrical component 1118 forgenerating a signal for transmission to a client operated by the person,indicating that the triggering event has been detected. For example, theelectrical component 1118 may include at least one control processorcoupled to a memory holding instructions for generating an signalaccording to more detailed algorithms described herein. The electricalcomponent 1118 may be, or may include, a means for generating a signalfor transmission to a client operated by the person, indicating that thetriggering event has been detected. Said means may be or may include theat least one control processor operating an algorithm. The algorithm mayoperate in a processor of host server to provide a signal via a clientinterface displaying the virtual world in one or more separate windows,and configuring the signal to obtain a desired output at the client.Said means may include other aspects for communicating an alert signal,such as the hardware and software components illustrated in FIGS. 1-2and 11 for communicating virtual environment data and related signals.

The apparatus 1100 may include similar electrical components forperforming any or all of the additional operations 900 or 1000 describedin connection with FIGS. 9-10, which for illustrative simplicity are notshown in FIG. 11.

In related aspects, the apparatus 1100 may optionally include aprocessor component 1102 having at least one processor, in the case ofthe apparatus 1100 configured as a virtual world hosting component andoptionally incorporated into a network server. The processor 1102 may bein operative communication with the components 1112-1118 or similarcomponents via a bus 1110 or similar communication coupling. Theprocessor 1102 may effect initiation and scheduling of the processes orfunctions performed by electrical components 1112-1118. The processor1102 may encompass the components 1112-1118, in whole or in part. In thealternative, the processor 1102 may be separate from the components1112-1118, which may include one or more separate processors.

In further related aspects, the apparatus 1100 may include a networkinterface component 1108, for communicating with multiple clients over anetwork. The apparatus 1100 may include an input/output port 1108 forreceiving input for administrative control of the virtual world hostprocess and providing a monitoring output for administrative purposes.The apparatus 1100 may include a component for storing information, suchas, for example, a memory device/component 1104. The computer readablemedium or the memory component 1104 may be operatively coupled to theother components of the apparatus 1100 via the bus 1110 or the like. Thememory component 1104 may be adapted to store computer readableinstructions and data for performing the activity of the components1112-1118, and subcomponents thereof, or the processor 1102, or theadditional aspects 400, 500 or 600, or the methods disclosed herein. Thememory component 1104 may retain instructions for executing functionsassociated with the components 1112-1118. While shown as being externalto the memory 1104, it is to be understood that the components 1112-1118can exist within the memory 1104.

In another aspect, a virtual world server as shown and describedelsewhere herein may perform an method 1200 that controls one or more ofmultiple avatars partly according to an automatic control scheme, asshown in FIG. 12. The method 1200 may include, at 1202, providing accessfor a user identified by a user account to a virtual environment hostedby a computer via at least one client. The method 1200 may include, at1204, generating multiple avatars for the user account to coexist withinthe virtual environment. The method 1200 may include, at 1206,controlling the multiple avatars at least partly in response to inputfrom the user, wherein at times at least one of the avatars iscontrolled using an automatic control scheme exclusive of input from theuser. The method 1200 may include, at 1208, transferring control overthe at least one of avatars from the automatic control scheme to theuser in response to detecting a defined event in the virtualenvironment. The method 1200 may be used in conjunction with aspects ofthe methods 300 and 800 discussed above, for example to enhance avirtual shop keeper application. In an aspect of method 1200, the usermay be assigned a status as an operator of a virtual store. In anotheraspect, the method 1200 may further include confirming that the userdesires to assume control of the at least one avatar, prior to thetransferring of the control.

In another aspect, a virtual world server as shown and describedelsewhere herein may perform a method 1300 that transfers control of oneor more of multiple avatars in response to a triggering event, as shownin FIG. 13. The method 1200 may be used in conjunction with aspects ofthe methods 300, 800 and 1200 discussed above, for example to enhance avirtual shop keeper application. The method 1300 may include, at 1302,providing a first user access to a first user account for a hostedvirtual world environment. The method 1300 may include, at 1304,providing a second user access to a second user account for the hostedvirtual world environment. The method 1300 may include, at 1306,modeling simultaneous presence of at least one virtual representative ofthe first user account, and at least one virtual representative of thesecond user account, within the virtual environment. The at least onevirtual representative of the first and second user accounts may be, ormay include, respective avatars or respective sets of multiple avatars.The method 1300 may include, at 1308, monitoring the virtualrepresentatives of the first and second user accounts for occurrence ofone or more triggering events.

In an aspect, the method 1300 may include, at 1310, transferring activecontrol over the virtual representatives of the first and second useraccounts to an operating entity in response to the one or moretriggering events, wherein the operating entity is selected from one ofthe first user, the second user, or one or more persons, computers, orsoftware processes. For example, control may be transferred from thefirst user to the second user, from the second user to the first user,from the first or second user to an automatic control process, or fromthe automatic control process to the first or second user. Variousexample of triggering events are described herein above. For furtherexample, in embodiments where multiple users operate under a masteraccount to be responsible for a shared group of avatars, a triggeringevent may occur when one user becomes involved in more than a thresholdnumber of active control sessions for multiple avatars. When a certainlimit has been reached, avatar control may be passed to another user inthe group or to an automatic control process.

According to further, more detailed aspects of a method 1300, theoperating entity may employ fewer control means than the number ofvirtual representatives that the operating entity is permitted to exertcontrol over. For example, a control means may include a certain numberof designated operators in a defined group, which number of operatorsmay be fewer in number than a number of avatars controlled by theoperator group.

In another aspect, the operating entity may monitor at least one virtualrepresentative of both the first and second user accounts, and exertscontrol over such monitored virtual representative in response to anattempt by a user of the virtual world to interact with such virtualrepresentative. In another aspect of the method 1300, wherein control ofat least one of such virtual representatives is exerted by a secondcontrol means different than any one of the first user, the second useror the operating entity, the virtual world server may enable the secondcontrol means to control the virtual representatives while causing thevirtual representatives to appear to the users observing the virtualrepresentatives as if the virtual representatives are being controlledby one of the first user, the second user, or the operating entity. Forexample, the virtual world server may enable a virtual representativecontrolled by the operating entity to behave in a manner that makes thevirtual representative appear to those interacting with the virtualrepresentative as if the virtual representative of a user account iscontrolled by the user for the user account to which the virtualrepresentative belongs. The server may enable such appearances, forexample, by concealing the transfer of control. Such transfers shouldgenerally be performed with the consent of the user or entity thatcontrols the virtual representatives subject to such transfers ofcontrol, and may be used to enable surrogate avatar representationwithin a corporate group or the like. Such transfers may also beimplemented according to the rules of a game being played within avirtual world environment, as a feature or aspect of the game.

Various aspects are presented herein in terms of systems that mayinclude a number of components, modules, and the like. It is to beunderstood and appreciated that the various systems may includeadditional components, modules, etc. and/or may not include all of thecomponents, modules, etc. discussed in connection with the figures. Acombination of these approaches may also be used. The various aspectsdisclosed herein can be performed on electrical devices includingdevices that utilize touch screen display technologies and/ormouse-and-keyboard type interfaces. Examples of such devices includecomputers (desktop and mobile), smart phones, personal digitalassistants (PDAs), and other electronic devices both wired and wireless.

In addition, the various illustrative logical blocks, modules, andcircuits described in connection with the aspects disclosed herein maybe implemented or performed with a general purpose processor, a digitalsignal processor (DSP), an application specific integrated circuit(ASIC), a field programmable gate array (FPGA) or other programmablelogic device, discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. A general purpose processor may be a microprocessor,but in the alternative, the processor may be any conventional processor,controller, microcontroller, or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration.

Furthermore, the one or more versions may be implemented as a method,apparatus, or article of manufacture using standard programming and/orengineering techniques to produce software, firmware, hardware, or anycombination thereof to control a computer to implement the disclosedaspects. A non-transitory computer readable medium may include but isnot limited to magnetic storage devices (e.g., hard disk, floppy disk,magnetic strips . . . ), optical disks (e.g., compact disk (CD), digitalversatile disk (DVD) . . . ), smart cards, and flash memory devices(e.g., card, stick). Of course, those skilled in the art will recognizemany modifications may be made to this configuration without departingfrom the scope of the disclosed aspects.

The steps of a method or algorithm described in connection with theaspects disclosed herein may be embodied directly in hardware, in asoftware module executed by a processor, or in a combination of the two.A software module may reside in RAM memory, flash memory, ROM memory,EPROM memory, EEPROM memory, registers, hard disk, a removable disk, aCD-ROM, or any other form of computer-readable storage medium known inthe art. A non-transitory computer-readable storage medium may becoupled to the processor such the processor can read information from,and write information to, the storage medium. In the alternative, thestorage medium may be integral to the processor. The processor and thestorage medium may reside in an ASIC. The ASIC may reside in a userterminal. In the alternative, the processor and the storage medium mayreside as discrete components in a user terminal.

The previous description of the disclosed aspects is provided to enableany person skilled in the art to make or use the present disclosure.Various modifications to these aspects will be readily apparent to thoseskilled in the art, and the generic principles defined herein may beapplied to other embodiments without departing from the spirit or scopeof the disclosure. Thus, the present disclosure is not intended to belimited to the embodiments shown herein but is to be accorded the widestscope consistent with the principles and novel features disclosedherein.

In view of the exemplary systems described supra, methodologies that maybe implemented in accordance with the disclosed subject matter have beendescribed with reference to several flow diagrams. While for purposes ofsimplicity of explanation, the methodologies are shown and described asa series of blocks, it is to be understood and appreciated that theclaimed subject matter is not limited by the order of the blocks, assome blocks may occur in different orders and/or concurrently with otherblocks from what is depicted and described herein. Moreover, not allillustrated blocks may be required to implement the methodologiesdescribed herein.

The foregoing embodiments merely exemplify various apparatus and systemsfor single user, multiple presence in a virtual reality environment. Thepresent technology is not limited by these examples.

1-20. (canceled)
 21. An apparatus, comprising: control circuitry; and atleast one memory including computer program code for one or moreprograms, the at least one memory and the computer program codeconfigured to, with the control circuitry, cause the apparatus to:manage a virtual reality environment; receive a first input from a firstcomputer; receive a second input from a second computer; control a firstavatar in response to the first input received from the first computer;control a second avatar in response to the second input from the secondcomputer; receive automated inputs from the first computer; control thefirst avatar based on the received automated inputs; and switching fromautomated control of the first avatar to user control of the firstavatar based at least in part on a condition, wherein the conditioncorresponds to a proximity of the first avatar and the second avatar, amovement by the second avatar, a visibility of the second avatar fromthe point of view of the first avatar, or a communication from thesecond avatars to the first avatar; resuming the automated control ofthe first avatar in response, in part, to a cessation of the conditionthat triggered the switching from the automated control of the firstavatar to the user control of the first avatar.
 22. The apparatus ofclaim 21, wherein the apparatus is a server.